#Parámetros: dir buffer

#include <mips/regdef.h>
#include <sys/syscall.h>

#define TAM_INT 			4

# para el frame

#define TAM_FRAME 		48

#define POS_SRA_RA		40
#define POS_SRA_FP		36
#define POS_SRA_GP		32

	.text
	.align 2
	.globl desalocar
	.ent desalocar

desalocar:
	
# creación del frame
   .frame   $fp, TAM_FRAME, ra   
   .set noreorder
   .cpload t9
   .set reorder

   subu   	sp, sp, TAM_FRAME
   .cprestore POS_SRA_GP

	sw 			ra,  POS_SRA_RA(sp)
	sw 			$fp, POS_SRA_FP(sp)
#	sw 			gp,  POS_SRA_GP(sp)

	move 		$fp, sp

# como los buffer en los primeros 4 bytes tiene el tam del mismo, o sea, a la 
# dir q me pasan le resto 4

	subu		a0, a0, TAM_INT
	jal			myfree 
	
# se libera el stack frame
liberar:

	move 		sp, $fp
	lw 			ra, POS_SRA_RA(sp)
	lw 			$fp, POS_SRA_FP(sp)
	addu 		sp, sp, TAM_FRAME
	j				ra

	.end desalocar
